/*
 * InputCharacter.hh
 *
 *  Created on: Nov 6, 2012
 *      Author: Zermingore
 */


#ifndef INPUTCHARACTER_HH_
# define INPUTCHARACTER_HH_

class InputCharacter
{
public:
	/** Default constructor */
	InputCharacter();

	~InputCharacter();

	// rename this
	void treatEvent();

	void treatKeyboard();


	// call-backs
	static void keyboardCallback(int key, int state);
	static void mouseButtonsCallback(int button, int state);
	static void mousePositionCallback(int x, int y);


//private:
    /** Treat Motion user's request
     ** check if move is valid, asking server
     ** if allowed, moves the Character and camera
     */
    static void moveForward();
    static void moveBackward();
    static void moveLeft();
    static void moveRight();

    static void lookLeft();
    static void lookRight();
    static void lookDown();
    static void lookUp();

    static void look(int x, int y);

    static void tiltLeft();
    static void tiltRight();


    short _mouseButtons;
};

#endif /* !INPUTCHARACTER_HH_ */
